Optimizing a user interface for a computing device

ABSTRACT

In general, embodiments of the invention provide an approach to organize a user interface, such as a computer desktop, based on the role or activity of the current user. Specifically, a display area configuration of a user device is defined by selecting resources from a plurality of available resources to include in a display area configuration, building a profile from the selected resources to preserve the display area configuration, and saving the profile. The display area is then built on a user device when the profile is selected from the user device.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present patent document is a continuation of U.S. patent applicationSer. No. 12/952,491, filed Nov. 23, 2010, entitled “OPTIMIZING A USERINTERFACE FOR A COMPUTING DEVICE”, the disclosure of which isincorporated herein by reference.

TECHNICAL FIELD

The present invention relates to optimizing a user interface (e.g.,display area) of a computing device. Specifically, the present inventionprovides a system and method to organize a display area of a computingdevice, such as a computer desktop, based on the role or activity of thecurrent user.

BACKGROUND

Computers affect our lives in many ways. Among other things, they allowusers to communicate with others, access music and videos, edit photos,and access information quickly on any given subject. In a businesssetting, computers have dramatically decreased the amount of timenecessary to perform many work-related tasks. However, due to the manytasks performed and the various roles assumed by a computer user, it iseasy for a desktop to become cluttered, making it difficult to findspecific items and reducing efficiency.

Solutions exist today which give users the ability to log in as aspecific user on a computer system to perform tasks in which theapplications, services, and files are arranged according to the rolethat the user performs. However, in these cases, there is no easy methodfor the computer system to automatically configure the desktopenvironment to display only the information that is relevant for therole or activity that the user is currently performing.

SUMMARY

In general, embodiments of the invention provide an approach tooptimizing a user interface on a computing device. Specifically, adisplay area configuration of a user device is defined by the selectionof a set of files, applications, etc., which are associated with aspecific role or activity of the user. The defined configuration isstored as a profile. The user can then switch to the definedconfiguration by selecting the stored profile when performing the roleor task. A computer desktop is used as one example embodiment of thepresent invention. The use of this example is not intended to belimiting, as any user device having a display area may be used with thesystems and methods described herein.

In one embodiment, there is a method for defining a display areaconfiguration of a user device. In this embodiment, the methodcomprises: defining a display area configuration of a user device,comprising: receiving one or more user selections of resources from aplurality of available resources to include in a display areaconfiguration; building a profile from the selected resources topreserve the display area configuration; saving the profile; andbuilding the display area on a user device when the profile is selectedfrom the user device.

In a second embodiment, there is a system for defining a display areaconfiguration of a user device. In this embodiment, the systemcomprises: at least one processing unit and memory operably associatedwith the at least one processing unit. A display area configuration toolis storable in memory and executable by the at least one processingunit. The display area configuration tool comprises a user inputcomponent configured to receive one or more user inputs when selectingresources from a plurality of available resources to include in adisplay area configuration; a preserving component configured to build aprofile from the selected resources to preserve the display areaconfiguration and save the profile; and a rendering component to buildthe display area on a user device when the profile is selected from theuser device.

In a third embodiment, there is a computer-readable medium storingcomputer instructions which, when executed, enables a computer system todefine a display area configuration of a user device, the computerreadable medium comprising: program code for causing a computer systemto: receive one or more user selections of resources from a plurality ofavailable resources to include in a display area configuration; build aprofile from the selected resources to preserve the display areaconfiguration; save the profile; and build the display area on a userdevice when the profile is selected from the user device.

In a fourth embodiment, there exists a method for deploying a system fordefining a display area configuration of a user device. In thisembodiment, a computer infrastructure is provided and is operable to:receive one or more user selections of resources from a plurality ofavailable resources to include in a display area configuration; build aprofile from the selected resources to preserve the display areaconfiguration; save the profile; and build the display area on a userdevice when the profile is selected from the user device.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features of this invention will be more readilyunderstood from the following detailed description of the variousaspects of the invention taken in conjunction with the accompanyingdrawings in which:

FIG. 1 illustrates a computerized implementation 100 of the presentinvention.

FIG. 2 illustrates one example of a graphical user interface (GUI),which allows a user to manually select from resources currently open toinclude in a display area configuration.

FIG. 3 illustrates one example of a graphical user interface (GUI),which allows a user to manually select from resources not currently opento include in a display area configuration.

FIG. 4 depicts a display area configuration tool according to oneembodiment of this invention.

FIG. 5 shows a method flow diagram of a process for manually defining adisplay area configuration.

FIG. 6 shows a method flow diagram of a process for dynamically defininga display area configuration.

The drawings are not necessarily to scale. The drawings are merelyschematic representations, not intended to portray specific parametersof the invention. The drawings are intended to depict only typicalembodiments of the invention, and therefore should not be considered aslimiting the scope of the invention. In the drawings, like numberingrepresents like elements.

DETAILED DESCRIPTION

Example embodiments will now be described more fully herein withreference to the accompanying drawings, in which example embodiments areshown. This disclosure may, however, be embodied in many different formsand should not be construed as limited to the example embodiments setforth herein. Rather, these example embodiments are provided so thatthis disclosure will be thorough and complete and will fully convey thescope of this disclosure to those skilled in the art. In thedescription, details of well-known features and techniques may beomitted to avoid unnecessarily obscuring the presented embodiments.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of this disclosure.As used herein, the singular forms “a”, “an”, and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. Furthermore, the use of the terms “a”, “an”, etc., do notdenote a limitation of quantity, but rather denote the presence of atleast one of the referenced items. It will be further understood thatthe terms “comprises” and/or “comprising”, or “includes” and/or“including”, when used in this specification, specify the presence ofstated features, regions, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, regions, integers, steps, operations, elements,components, and/or groups thereof.

FIG. 1 illustrates a computerized implementation 100 of the presentinvention. As depicted, implementation 100 includes computer system 104deployed within a computer infrastructure 102. This is intended todemonstrate, among other things, that the present invention could beimplemented within a network environment (e.g., the Internet, a widearea network (WAN), a local area network (LAN), a virtual privatenetwork (VPN), etc.), or on a stand-alone computer system. In the caseof the former, communication throughout the network can occur via anycombination of various types of communications links. For example, thecommunication links can comprise addressable connections that mayutilize any combination of wired and/or wireless transmission methods.Where communications occur via the Internet, connectivity could beprovided by conventional TCP/IP sockets-based protocol, and an Internetservice provider could be used to establish connectivity to theInternet. Still yet, computer infrastructure 102 is intended todemonstrate that some or all of the components of implementation 100could be deployed, managed, serviced, etc., by a service provider whooffers to implement, deploy, and/or perform the functions of the presentinvention for others.

Computer system 104 is intended to represent any type of computer systemthat may be implemented in deploying/realizing the teachings recitedherein. In this particular example, computer system 104 represents anillustrative system for providing a passport according to the presentinvention. It should be understood that any other computers implementedunder the present invention may have different components/software, butwill perform similar functions. As shown, computer system 104 includes aprocessing unit 106, memory 108 for storing a display area configurationtool 150, a bus 110, and device interfaces 112.

Processing unit 106 collects and routes signals representing outputsfrom external devices 115 (e.g., a keyboard, a pointing device, adisplay, a graphical user interface, etc.) to display area configurationtool 150. The signals can be transmitted over a LAN and/or a WAN (e.g.,T1, T3, 56 kb, X.25), broadband connections (ISDN, Frame Relay, ATM),wireless links (802.11, Bluetooth, etc.), and so on. In someembodiments, the signals may be encrypted using, for example, trustedkey-pair encryption. Different external devices may transmit informationusing different communication pathways, such as Ethernet or wirelessnetworks, direct serial or parallel connections, USB, Firewire®,Bluetooth®, or other proprietary interfaces. (Firewire is a registeredtrademark of Apple Computer, Inc. Bluetooth is a registered trademark ofBluetooth Special Interest Group (SIG)).

In general, processing unit 106 executes computer program code, such asprogram code for operating display area configuration tool 150, which isstored in memory 108 and/or storage system 116. While executing computerprogram code, processing unit 106 can read and/or write data to/frommemory 108, storage system 116, and profile data 168. Storage system 116and profile data 168 can include VCRs, DVRs, RAID arrays, USB harddrives, optical disk recorders, flash storage devices, or any othersimilar storage device. Although not shown, computer system 104 couldalso include I/O interfaces that communicate with one or more externaldevices 115 that enable a user to interact with computer system 104.

Computer desktops become cluttered; many times with unused icons andshortcuts. Computers are capable of performing such a vast array oftasks that they can become filled with a host of applications and data.These conditions make it difficult for a user to find specific resourcesneeded to perform a given role or activity. The present inventioncreates a desktop experience that is more efficient by making it easierto located applications, services, files, and other information requiredto perform the role or activity. Resources that may be included in thedisplay area configuration include, but are not limited to, files,folder and directory structures, contacts in an address book, emailmessages, applications, cloud services, etc.

In one embodiment of the present invention, the user manually defines adisplay area configuration associated with a specific role or activity.The profiles are stored in a database or other storage device associatedwith the computer. Example roles include customer, parent, or employee.Activities may include such things as work, hobby, or managing a budget.The examples cited above are illustrative only and not intended to belimiting. Multiple display area configurations may be defined by a user,with each configuration being associated with a specific role oractivity. Each defined display area configuration is stored as aprofile. As used herein, a ‘profile’ is a file(s) representing themapping for a specific display area configuration which is stored in adatabase or other data storage area.

Referring now to FIG. 2, one example of a graphical user interface (GUI)is shown which allows a user to manually select from resources which arecurrently open on the user device to include in a display areaconfiguration. A GUI 200 listing available content is shown. When theuser desires to select from resources that have already been opened bythe user, Current tab 202A is selected, rather than General tab 202B. Anobject can be associated with one or more display area configurationprofiles. Two text documents (204A, 204B) and three internet browserpages (204C-204E) are listed as resources available in GUI 200.Checkboxes 206A-206E are displayed to the right of the interface. Incomputing, a checkbox is a graphical user interface element that permitsthe user to make multiple selections from a number of options. Savebutton 208A and cancel button 208B are at the bottom of the screen. Asshown in FIG. 2, particular resources to include in a display areaconfiguration associated with a specific role or activity (i.e.,‘Research Paper’) have been selected by a user. The display areaconfiguration is stored as a profile using the value entered in profilename 202.

Referring now to FIG. 3, one example of a graphical user interface (GUI)is shown which allows a user to manually select resources not currentlyopen to include in a display area configuration. A GUI 300 listingresource types (252A-252G) is shown with a browse button for each type(254A-254G). One or more browse buttons may be used to locate and selectresources that are not currently open. As noted in the figure, Generaltab 250B is selected, rather than Current tab 250A when performing thisoperation. Profile name 258 is shown at the top of the screen. Savebutton 256A and cancel button 256B are at the bottom of the screen.

For example, a user wishes to add a file to the display areaconfiguration, but the file is not currently open. One option is toselect General tab 250B. User selects browse button 254A to browse forthe file. After the file is found and selected, user clicks Save button256A. The selected file is added to the display area configuration.

In another embodiment of the present invention, an approach fordynamically defining a display area configuration is presented. From anautomated standpoint, events that determine what the user is currentlyaccessing to perform a specific task or role must be captured. Suchevents may include, but are not limited to, key strokes, applicationsaccessed, data accessed, and systems logs. The profile is built andupdated as the system gathers data on which resources to include and/ordiscard based on user activities.

In another embodiment, a hybrid approach which utilizes both the manualconfiguration and automated configuration methods for defining a displayarea configuration is presented. Using this approach, the user manuallydefines the display area configuration by selecting the desktopresources to be included. The display area configuration is stored as aprofile. The user then selects to have the user activities monitoredwhen using the profile. Resources are added and/or subtracted, and theprofile is updated, based on user activities.

In still another embodiment, the credentials of the user are limitedbased on the role or activity that is being performed. This reduces theneed for unnecessary credentials. For example, when working on aspreadsheet, the user does not need access to a customer relationshipmanagement or CRM system which helps a company keep track of and easilyaccess information about its customers or clients. Therefore, thecredentials are disabled.

Not only will this limit access of the specific role, but it can be usedto ensure that two applications may not be open at the same time for twodifferent roles. For example, this is especially useful when acting asan administrator for two customer computer systems. Role ‘A’ allowsaccess to customer A's data, whereas Role ‘B’ allows access to customerB's data. The present invention allows for the separation of roles, sothat a user cannot be associated with more than one role at any onetime. This would prevent the user from accessing both sets of customerdata at the same time.

FIG. 4 shows a more detailed view of one example display areaconfiguration tool 150 shown in FIG. 1. Display area configuration tool150 comprises user input component 160, tracking component 162,preserving component 164 and rendering component 166. Informationrelating to each profile is stored in profile data 168. Trackingcomponent 162 utilizes threshold data 170 and resource tracking data 172to store data for configuration automation. The process will bedescribed by way of example using the hybrid method of both manualconfiguration and automated configuration in defining a display areaconfiguration for user activity that user has named ‘Research Paper’.

Display area configuration tool 150 includes a user input component thatreceives one or more user inputs selecting desktop content from aplurality of resources displayed on a user interface to include in adisplay area configuration. Referring back to FIG. 2, user inputcomponent receives user selections to checkboxes 206A, 206C, and 206E.User input component also receives the user click to save button 208A.The two items not selected (204B, 204D) are unrelated to writing aresearch paper and are not included in the defined display areaconfiguration. Preserving component 162 gathers information relating toselected desktop content, builds a display area configuration profileusing the gathered information to preserve the define display areaconfiguration, and stores the profile.

The user decides to have the profile updated dynamically by utilizingthe automated configuration option. The user selects the profile set upfor activity ‘Research Paper’. Tracking component 162 begins to monitorthe activities of the user (e.g., applications accessed, files accessed,contacts used, etc.). When the user accesses a new resource, it isflagged as a potential candidate to be included in the profile. Resourcetracking data is stored in resource tracking data 172.

For each resource that was accessed directly, it is given a weightedvalue (e.g., a value of ‘5’). If the resource was a file in a folder (oran application within a suite of applications), then the other items inthe folder (or applications in the suite) are given a lower weightedvalue (e.g., a value of ‘1’). The system checks all the resources havinga weighted value and determines when each was last accessed. If theresource was not accessed within the last predefined number of days,then the weighted value is decremented.

The system then optimizes the desktop based on the resources and theweighted values of each. For example, files and applications having azero weighted value (or other minimum threshold value) may be grayed outor removed from the desktop. Applications reaching weighted valuethreshold may be added to the desktop, task bar, or web browserfavorites, etc. The weighted values thresholds and the amount of timerequired before decrementing a value may be customized and tailored foroptimization, and are stored in threshold data 170. Tracking component162 uses data gathered in resource tracking data 172 which impacts thedisplay area configuration in some way (adding a resource, removing aresource, graying out a resource, etc.) to update profile data 168 forthe given profile.

Rendering component 164 presents the display area configuration on auser device when the profile is selected from the user device. Renderingcomponent reads profile data 168 for the profile selected. Using thedata read from profile data 168 for the profile selected by the user,the desktop or display device is configured.

In one embodiment, the user can switch to a different saved profile whenmoving to a new a role or activity. For example, a user may need toperform some work-related tasks in the morning and pay bills in theafternoon. The user switches to a ‘Pay Bills’ profile which has been setup and saved at an earlier time. In one embodiment, the user can switchto a different profile by using a click step (e.g., the control key plus‘F2’) or piece of hardware (e.g., the scroll wheel on a computer mouse)to perform the profile switch. In another embodiment, the user may linka profile to a calendar, so that when the user is switched to a roleassociated with a customer meeting (e.g., ‘Customer’ profile). Theexamples above for switching profiles are exemplary only and notintended to be limiting. Other options for switching profiles arepossible within the scope of the invention.

Referring now to FIG. 5, a display area configuration process flow 400for manually defining a display area configuration will be described infurther detail. As shown, the user defines a display area configurationby selecting resources to include in the display area configuration(step S1). The resources may include a set of documents, applications,and other items that represent the resources needed when working on aspecific role or activity. The display area configuration is stored as aprofile (S2). When the profile is selected on the user device, thepredefined display area configuration is rendered (S3).

Referring now to FIG. 6, a display area configuration process flow 400for dynamically defining a display area configuration will be describedin further detail. As shown, the user creates a new user deviceconfiguration relating to a specific role or activity, or selects anexisting profile, to be automatically configured (S11). The systemmonitors or logs activities of the user (S12). Any new resource (file,application, etc.) that the user accesses is flagged as a potentialcandidate to be included in the display area configuration and thesystem begins tracking the resource (S13). The system also logsresources that are currently included in the display area configuration(S14). Resources are added or removed to the display area configurationbased on predefined thresholds and user activities, and updates theprofile (S15).

It will be appreciated that the method process flow 500 of FIG. 5represents one possible implementation of a process flow for manuallydefining a display area configuration, and that other process flows arepossible within the scope of the invention. It will be furtherappreciated that method process flow 600 of FIG. 6 represents onepossible implementation of a process flow for dynamically defining adisplay area configuration, and that other process flows are possiblewithin the scope of the invention. Method process flow 500 and methodprocess flow 600 illustrate the architecture, functionality, andoperation of possible implementations of systems, methods and computerprogram products according to various embodiments of the presentinvention. In this regard, each portion of each flowchart may representa module, segment, or portion of code, which comprises one or moreexecutable instructions for implementing the specified logicalfunction(s). It will also be noted that each block of the flowchartillustration can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts.

Further, it can be appreciated that the methodologies disclosed hereincan be used within a computer system to define a display areaconfiguration. In this case, display area configuration tool 150 can beprovided, and one or more systems for performing the processes describedin the invention can be obtained and deployed to computer infrastructure102. To this extent, the deployment can comprise one or more of: (1)installing program code on a computing device, such as a computersystem, from a computer-readable medium; (2) adding one or morecomputing devices to the infrastructure; and (3) incorporating and/ormodifying one or more existing systems of the infrastructure to enablethe infrastructure to perform the process actions of the invention.

The example computer system 104 may be described in the general contextof computer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, people, components, logic, data structures, and so on, thatperform particular tasks or implements particular abstract data types.The example computer system 104 may be practiced in distributedcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed computing environment, program modules may be located inboth local and remote computer storage media including memory storagedevices.

Furthermore, an implementation of the example computer system 104 may bestored on or transmitted across some form of computer readable media.Computer readable media can be any available media that can be accessedby a computer. By way of example, and not limitation, computer readablemedia may comprise “computer storage media” and “communications media.”

“Computer storage media” include volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules, or other data. Computer storage mediaincludes, but is not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed by acomputer.

“Communication media” typically embodies computer readable instructions,data structures, program modules, or other data in a modulated datasignal, such as carrier wave or other transport mechanism. Communicationmedia also includes any information delivery media.

The term “modulated data signal” means a signal that has one or more ofits characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared, and other wireless media. Combinations of any of the above arealso included within the scope of computer readable media.

It is apparent that there has been provided with this invention anapproach for defining a display area configuration. While the inventionhas been particularly shown and described in conjunction with apreferred embodiment thereof, it will be appreciated that variations andmodifications will occur to those skilled in the art. Therefore, it isto be understood that the appended claims are intended to cover all suchmodifications and changes that fall within the true spirit of theinvention.

What is claimed is:
 1. A method for defining a display areaconfiguration of a user device, comprising: receiving one or more userselections of resources from a plurality of available resources toinclude in a display area configuration; building a profile from theselected resources to preserve the display area configuration; savingthe profile; flagging a resource not currently included in the displayarea configuration; logging the number of times the user accesses theresource; adding the resource to the display area configuration when thenumber of times the user accesses the resource reaches a predefinedthreshold; updating the profile based on the resource added to thedisplay area configuration; and building the display area on a userdevice.
 2. The method of claim 1, wherein the display area is a computerdesktop.
 3. The method of claim 1, wherein the profile is associatedwith a role of the user.
 4. The method of claim 1, further comprising:logging a period of time the user does not access a resource currentlyincluded in the display area configuration; and removing the resource inthe display area configuration when the period of time reaches apredefined threshold.
 5. The method of claim 1, further comprising:determining whether a selected resource is not currently included in aseparate profile; and notifying the user that the selected resourcecannot be added to the display area configuration.
 6. The method ofclaim 1, further comprises linking the profile to at least one calendarevent.
 7. The method of claim 6, wherein the building occurs in responseto an occurrence of the at least one calendar event.
 8. The method ofclaim 1, wherein a service solution provider provides a computerinfrastructure that performs the method for one or more consumers.
 9. Asystem for defining a display area configuration of a user device,comprising: a bus; a processor coupled to the bus; and a memory mediumcoupled to the bus, the memory medium comprising instructions to:receive one or more user selections of resources from a plurality ofavailable resources to include in a display area configuration; buildinga profile from the selected resources to preserve the display areaconfiguration; save the profile; flag a resource not currently includedin the display area configuration; log the number of times the useraccesses the resource; add the resource to the display areaconfiguration when the number of times the user accesses the resourcereaches a predefined threshold; update the profile based on the resourceadded to the display area configuration; and build the display area on auser device.
 10. The system of claim 9, wherein the display area is acomputer desktop.
 11. The system of claim 9, wherein the profile isassociated with a role of the user.
 12. The system of claim 9, thememory medium further comprising instructions to: log a period of timethe user does not access a resource currently included in the displayarea configuration; and remove the resource in the display areaconfiguration when the period of time reaches a predefined threshold.13. The system of claim 9, the memory medium further comprisinginstructions to: determine whether a selected resource is not currentlyincluded in a separate profile; and notify the user that the selectedresource cannot be added to the display area configuration.
 14. Thesystem of claim 9, the memory medium further comprising instructions to:link the profile to at least one calendar event; and wherein thebuilding occurs in response to an occurrence of the at least onecalendar event.
 15. A computer program product for defining a displayarea configuration of a user device, the computer program productcomprising a computer readable storage medium, and program instructionsstored on the computer readable storage medium, to: receive one or moreuser selections of resources from a plurality of available resources toinclude in a display area configuration; building a profile from theselected resources to preserve the display area configuration; save theprofile; flag a resource not currently included in the display areaconfiguration; log the number of times the user accesses the resource;add the resource to the display area configuration when the number oftimes the user accesses the resource reaches a predefined threshold;update the profile based on the resource added to the display areaconfiguration; and build the display area on a user device.
 16. Thecomputer program product of claim 15, wherein the display area is acomputer desktop.
 17. The computer program product of claim 15, whereinthe profile is associated with a role of the user.
 18. The computerprogram product of claim 15, further comprising program instructionsstored on the computer readable storage media to: logging a period oftime the user does not access a resource currently included in thedisplay area configuration; and remove the resource in the display areaconfiguration when the period of time reaches a predefined threshold.19. The computer program product of claim 15, further comprising programinstructions stored on the computer readable storage media to: determinewhether a selected resource is not currently included in a separateprofile; and notify the user that the selected resource cannot be addedto the display area configuration.
 20. The computer program product ofclaim 15, further comprising program instructions stored on the computerreadable storage media to: link the profile to at least one calendarevent; and wherein the building occurs in response to an occurrence ofthe at least one calendar event.